package com.dupt.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.dupt.common.annotation.Excel;
import com.dupt.common.core.domain.BaseEntity;

/**
 * 产品库对象 dupt_product_library
 *
 * @author zhuanyu.sun
 * @date 2025-07-22
 */
public class ProductLibrary extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 产品库ID */
    private Long productLibraryId;

    /** 产品类型 */
    @Excel(name = "产品类型")
    private String productType;

    /** 产品内码（系统定义） */
    @Excel(name = "产品内码", readConverterExp = "系=统定义")
    private String productInnerCode;

    /** 产品编码（ERP定义） */
    @Excel(name = "产品编码", readConverterExp = "E=RP定义")
    private String productCode;

    /** 产品名称 */
    @Excel(name = "产品名称")
    private String productName;

    /** 产品规格型号 */
    @Excel(name = "产品规格型号")
    private String productItem;

    /** 产品序列号 */
    @Excel(name = "产品序列号")
    private String productSerialNo;

    /** 产品编号 */
    @Excel(name = "产品编号")
    private String productNo;

    /** 产品精度 */
    @Excel(name = "产品精度")
    private String productPrecision;

    /** 产品描述 */
    @Excel(name = "产品描述")
    private String productDescribe;

    /** 生产厂家 */
    @Excel(name = "生产厂家")
    private String manufacturer;

    /** 出厂编号 */
    @Excel(name = "出厂编号")
    private String manufactureNo;

    /** 出厂日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "出厂日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date productionTime;

    /** 适用温度 */
    @Excel(name = "适用温度")
    private String applicableTemp;

    /** 连接方式 */
    @Excel(name = "连接方式")
    private String connectionType;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 数量 */
    @Excel(name = "数量")
    private Long amount;

    /** 借用前位置 */
    @Excel(name = "借用前位置")
    private String beforePos;

    /** 当前位置 */
    @Excel(name = "当前位置")
    private String currentPos;

    /** 状态1：在库 */
    @Excel(name = "状态1：在库")
    private String status;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 附件（产品检验报告） */
    @Excel(name = "附件", readConverterExp = "产=品检验报告")
    private String accessory;

    public void setProductLibraryId(Long productLibraryId)
    {
        this.productLibraryId = productLibraryId;
    }

    public Long getProductLibraryId()
    {
        return productLibraryId;
    }

    public void setProductType(String productType)
    {
        this.productType = productType;
    }

    public String getProductType()
    {
        return productType;
    }

    public void setProductInnerCode(String productInnerCode)
    {
        this.productInnerCode = productInnerCode;
    }

    public String getProductInnerCode()
    {
        return productInnerCode;
    }

    public void setProductCode(String productCode)
    {
        this.productCode = productCode;
    }

    public String getProductCode()
    {
        return productCode;
    }

    public void setProductName(String productName)
    {
        this.productName = productName;
    }

    public String getProductName()
    {
        return productName;
    }

    public void setProductItem(String productItem)
    {
        this.productItem = productItem;
    }

    public String getProductItem()
    {
        return productItem;
    }

    public void setProductSerialNo(String productSerialNo)
    {
        this.productSerialNo = productSerialNo;
    }

    public String getProductSerialNo()
    {
        return productSerialNo;
    }

    public void setProductNo(String productNo)
    {
        this.productNo = productNo;
    }

    public String getProductNo()
    {
        return productNo;
    }

    public void setProductPrecision(String productPrecision)
    {
        this.productPrecision = productPrecision;
    }

    public String getProductPrecision()
    {
        return productPrecision;
    }

    public void setProductDescribe(String productDescribe)
    {
        this.productDescribe = productDescribe;
    }

    public String getProductDescribe()
    {
        return productDescribe;
    }

    public void setManufacturer(String manufacturer)
    {
        this.manufacturer = manufacturer;
    }

    public String getManufacturer()
    {
        return manufacturer;
    }

    public void setManufactureNo(String manufactureNo)
    {
        this.manufactureNo = manufactureNo;
    }

    public String getManufactureNo()
    {
        return manufactureNo;
    }

    public void setProductionTime(Date productionTime)
    {
        this.productionTime = productionTime;
    }

    public Date getProductionTime()
    {
        return productionTime;
    }

    public void setApplicableTemp(String applicableTemp)
    {
        this.applicableTemp = applicableTemp;
    }

    public String getApplicableTemp()
    {
        return applicableTemp;
    }

    public void setConnectionType(String connectionType)
    {
        this.connectionType = connectionType;
    }

    public String getConnectionType()
    {
        return connectionType;
    }

    public void setUnit(String unit)
    {
        this.unit = unit;
    }

    public String getUnit()
    {
        return unit;
    }

    public void setAmount(Long amount)
    {
        this.amount = amount;
    }

    public Long getAmount()
    {
        return amount;
    }

    public void setBeforePos(String beforePos)
    {
        this.beforePos = beforePos;
    }

    public String getBeforePos()
    {
        return beforePos;
    }

    public void setCurrentPos(String currentPos)
    {
        this.currentPos = currentPos;
    }

    public String getCurrentPos()
    {
        return currentPos;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }

    public void setAccessory(String accessory)
    {
        this.accessory = accessory;
    }

    public String getAccessory()
    {
        return accessory;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("productLibraryId", getProductLibraryId())
                .append("productType", getProductType())
                .append("productInnerCode", getProductInnerCode())
                .append("productCode", getProductCode())
                .append("productName", getProductName())
                .append("productItem", getProductItem())
                .append("productSerialNo", getProductSerialNo())
                .append("productNo", getProductNo())
                .append("productPrecision", getProductPrecision())
                .append("productDescribe", getProductDescribe())
                .append("manufacturer", getManufacturer())
                .append("manufactureNo", getManufactureNo())
                .append("productionTime", getProductionTime())
                .append("applicableTemp", getApplicableTemp())
                .append("connectionType", getConnectionType())
                .append("unit", getUnit())
                .append("amount", getAmount())
                .append("beforePos", getBeforePos())
                .append("currentPos", getCurrentPos())
                .append("status", getStatus())
                .append("delFlag", getDelFlag())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .append("accessory", getAccessory())
                .toString();
    }
}
